iT邦幫忙

2024 iThome 鐵人賽

DAY 27
0
Mobile Development

SwiftUI快速入門30天系列 第 27

Day27 - AppStorage 和 UserDefaults在App存簡單資料

  • 分享至 

  • xImage
  •  

Day 27: 使用 AppStorage 和 UserDefaults 儲存資料

在 SwiftUI 中,AppStorageUserDefaults 提供簡單且高效的方式來持久化應用程式的資料。這兩者主要用來儲存小型資料,例如用戶偏好設置、應用程式狀態等。

1. UserDefaults

UserDefaults 是 iOS 中常用的鍵值對儲存方式,可以跨應用程序啟動儲存簡單的數據,如布林值、整數、字串等。用法如下:

// 寫入資料到 UserDefaults
UserDefaults.standard.set(true, forKey: "isLoggedIn")

// 讀取資料
let isLoggedIn = UserDefaults.standard.bool(forKey: "isLoggedIn")

2. AppStorage

AppStorage 是 SwiftUI 中針對簡單資料存取的屬性包裝器,並自動與視圖狀態綁定,非常適合 SwiftUI 中使用。其背後實際上也是使用 UserDefaults

struct ContentView: View {
    @AppStorage("username") var username: String = "Guest"
    
    var body: some View {
        VStack {
            Text("Welcome, \(username)!")
            Button("Change Username") {
                username = "SwiftUI User"
            }
        }
    }
}

3. 差異與選擇

AppStorage 比起 UserDefaults 更加簡單直觀,適合在 SwiftUI 中綁定 UI 的狀態。當需要更細粒度的控制或跨平台時(如 macOS/iOS 共用),可以直接使用 UserDefaults

4. 最佳實踐

  • 使用 AppStorage 來簡化 SwiftUI 中的資料持久化。
  • UserDefaults 適合非 UI 綁定的全局設置或複雜數據存取場景。
  • 適量儲存,不要使用 UserDefaults 存放大量數據。

透過這些技巧,能輕鬆實現應用程式資料的持久化與管理。


上一篇
Day26 - GestureRecognizer,使用手勢來控制手機點和滑
下一篇
Day28 - 介紹常用的SwiftUI Warp @開頭的包裝屬性
系列文
SwiftUI快速入門30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言